chore(deps): update mise to v2026.8.0 - #2364
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
requested review from
dhoard,
fstab,
jaydeluca and
zeitlinger
as code owners
August 3, 2026 01:15
Contributor
Benchmark resultsBenchmark run finished with conclusion
Benchmark summary artifact was not found; see the workflow run for details. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v2026.7.5→v2026.8.0v2026.7.5→v2026.8.0Release Notes
jdx/mise (jdx/mise)
v2026.8.0: : 15% faster shims, multi-language workspaces, and precompiled RubyCompare Source
This release makes mise noticeably faster on Linux x64: shims have 15% lower latency, while config-aware commands are 8–11% faster in local release-to-release benchmarks. It also significantly expands the experimental monorepo task workflow with dependency inference across Cargo, uv (Python), Go, and Node workspaces, and makes precompiled Ruby binaries the default.
⚡ Performance: up to 15% lower latency
Official checksum-verified Linux x64 GNU binaries were compared on an AMD Ryzen 9 7950X3D using an isolated offline fixture with warm filesystem caches (20 warmups and 200 measured runs per command):
tasks lsenv -s bashcurrentsettings--helpversionregistryRelease downloads are smaller as well:
.tar.xz.tar.gz.tar.zstThe raw executable file is 2.5% larger because of the BOLT file layout, despite its smaller allocated sections and compressed artifacts. Shim dispatch was measured in two reversed-order 300-run rounds. These are whole-release results against v2026.7.18, so they include all changes between the releases rather than isolating BOLT alone.
Highlights
mise tasks graphdiscovers projects and internal dependency edges from Cargo, uv, Go, and Node workspace metadata without needing the underlying toolchain installed, and--explainattributes every project, edge, and task field to its source.Added
task: Cargo workspaces are now inferred for the task graph. mise parses root and member
Cargo.tomlfiles (nocargobinary required) to buildcargo:<package>projects and internal edges from normal, dev, build, target-specific, renamed, and inheritedworkspace = truepath dependencies, with provenance surfaced in graph output. (#11554 by @jdx)task: uv (Python) workspaces are inferred from
pyproject.toml. When[tool.uv.workspace]is present, member globs and exclusions defineuv:<package>projects and edges come from[tool.uv.sources]workspace = true/ localpathentries across main, optional, dependency-group, and legacy dev dependencies — again without invokinguvor Python. (#11556 by @jdx)task: Go workspaces are discovered from
go.workusedirectives and each module'sgo.mod, registering stablego:<module-path>projects without running thegobinary. Dependency ordering is supplied explicitly via[monorepo.projects]overrides. (#11559 by @jdx)task: workspace providers can now contribute task suggestions. The Node provider imports supported
inputs,outputs,cache, anddependsOnmetadata from matchingturbo.jsonentries for inferred package scripts, trackingturbo.jsonas a task definition source. Unsupported Turbo expressions are left unset. (#11543 by @jdx)task:
mise tasks graph --explainshows provider and metadata-source provenance for every inferred project, dependency edge, task, and provider-suggested field, and--jsonnow serializes the same attribution. Config overrides are labeled asconfigurationrather than misattributed to inference. (#11547 by @jdx)task:
mise watchgains a per-taskwatch.no_vcs_ignoreoption so tasks can watch sources that are excluded by.gitignore(such as generated files). VCS ignores stay enabled by default to avoid scanning broad build directories; one opted-in task enables it for the combined watch process. (#11535 by @Marukome0743)task: groundwork for affected-project task selection: mise can now resolve affected Git base/head revisions (with
MISE_AFFECTED_BASE/MISE_AFFECTED_HEADoverrides and CI auto-detection for GitHub Actions and GitLab), map changed files to the workspace projects that own them, and expand that set through transitive reverse-dependency edges across providers. (#11585, #11569, #11583 by @jdx)Changed
ruby.compileis unset — installs tryjdx/rubybinaries first and fall back to a source build when none are available. Setruby.compile = trueto force a source build as before. (#11584 by @jdx)Fixed
--path <dir>now targets a config file inside that directory foruse,unuse,set,unset,dotfiles add, and thesystemsubcommands. Previously--pathwas silently discarded when the current directory already had a config in scope, somise unuse --path ../othercould remove a tool from the wrong file. (#11575 by @JamBalaya56562)mise runstops starting new work, exits with status 130, and no longer printsno exit statusortask failed, while still allowing post-dependency cleanup to run. (#11511 by @Marukome0743)sourcesandoutputsnow support brace globs (e.g.{a,b}/**), and literal single-element braces are preserved rather than being mangled. (#11555, #11565 by @Marukome0743)mise run --tool python@3.12now honors the selected interpreter when creating a_.python.venv, instead of building the venv from the first[tools] pythonentry. (#11567 by @JamBalaya56562)mise unuse node@20onnode = ["20", "22"]now removes only the matching version and preserves the rest, including structured options and.tool-versionsentries. The whole tool key is removed only for an unversioned request or after the last version is unused. (#11563 by @Marukome0743)redact = falseon a variable now excludes it from matchingredactionspatterns, so a short opted-out value no longer leaks into the global scrubber and partially redacts unrelated secrets. (#11564 by @jdx)hook-envnow detects the drift and restores it, while leaving user-owned variables, added PATH entries, and PATH reordering untouched. (#11568 by @Marukome0743)symlink-eachno longer recursively walks shared targets like~for status, apply, and unapply. mise now records exact source-to-target pairs in a manifest under$MISE_STATE_DIR/dotfiles, avoiding traversal of unrelated and unreadable home-directory trees. Existing installs are backfilled on their next apply. (#11549 by @jdx)[tools].dependsare now on the PATH given tobin/downloadandbin/installscripts during the samemise install, fixing first-install failures where a dependency's executable was still missing.bin/installnow also fails when it installs nothing. (#11531 by @Marukome0743, #11553 by @JamBalaya56562)pre_installhook returns a sha1 or md5 checksum are now verified instead of panicking withnot implemented: sha1. (#11536 by @JamBalaya56562)terminate_process/postflight handling, covering current cask shapes such as Cloudflare WARP, TablePlus, Zoom, OrbStack, Surge, Plex Media Server, and Zed Preview. Homebrew-owned casks are left byte-for-byte untouched. (#11215 by @donbeave)fjmacOS key path is now supported. (#11545 by @jdx)gh/glabconfig is now found on Windows. (#11508 by @JamBalaya56562)Performance
Documentation
Registry
Full Changelog: jdx/mise@v2026.7.18...v2026.8.0
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
AI-assisted — Tool: Codex; model: unavailable/unavailable; version: unavailable.
v2026.7.18: : Monorepo task ergonomics and a broad round of fixesCompare Source
This release refines mise's experimental monorepo task workflow with relative dependency paths and a compact dependency tree view, and lands a wide batch of fixes across Cargo installs, plugins, PATH handling, Windows program resolution, Aqua locks, GitLab pagination, and more.
Added
task:
mise tasks depsgains a--compactflag that expands each shared dependency subtree only once and marks later references as(already shown), keeping every incoming edge visible while avoiding the recursive blow-up that wildcard-heavy monorepo graphs produced. Default output is unchanged unless you pass the flag. (#11502 by @jdx)task: monorepo task dependencies now support
./-prefixed relative paths, resolved from the declaring task's own monorepo location, so one aggregate declaration works unchanged at the root, in nested apps, and in leaves without hard-coded absolute paths. Trailing...patterns now include the base project itself in addition to its descendants. (#11503 by @jdx)Fixed
features,default-features,bin,crate,locked) and reinstall automatically when any of them change, so changing feature flags or the selected binary no longer silently reuses the wrong artifact. Incompatible shared/system installs are shadowed in your primary install directory instead of being modified. (#11480 by @Marukome0743)[plugins]entries can now point at local filesystem paths (absolute,~/, or explicit.//../relative to the config root). Local asdf, vfox, vfox-backend, and package plugins are installed as symlinks so source edits take effect immediately, while Git URLs, refs, archives, andfile://sources keep their existing behavior. (#11487 by @Marukome0743)plugins install,plugins install --all, andplugins updatenow finish every plugin even when one fails, preserving successful changes and reporting all failures together (in deterministic order) with a failing exit status. (#11490 by @Marukome0743)mise env,mise xchild PATHs,mise doctor) now collapse exact duplicate PATH entries first-wins, fixing the runaway_.pathaccumulation that appeared in nested shells and IDE terminals that inherit an activated PATH without mise's state vars. The live shell PATH is intentionally left untouched. (#11491 by @JamBalaya56562)mise prune --toolsno longer discards references from untrusted idiomatic version files and plain.tool-versions, preventing removal of versions still in use by other projects. (#11501 by @jdx)idiomatic_version_file_enable_toolsset in a config root's own[settings]is now honored by monorepo-wide commands likemise ls --monorepoandmise install --monorepo, instead of only being applied when mise runs from inside that root. (#11463 by @kaii-zen)bin/list-allandbin/latest-stablescripts now receive your resolved mise[env]values, removals, and_.pathadditions, so plugins that need a credential or helper on PATH can list versions. Caches are partitioned per environment so results are never reused across differing configs. (#11492 by @Marukome0743)downloads.haskell.org) again retain prefix-scoped format and file metadata, so archives are extracted correctly rather than copied as the executable. (#11499 by @jdx)MISE_LIST_ALL_VERSIONSis set. (#11507 by @JamBalaya56562)program not founderrors when a tool is present only as a.cmdshim (for example a scoop- or pip-installedpipx.cmd). Interpreter-only files such as.ps1and.vbsare recognized correctly, with.vbsfile tasks routed throughcscript. (#11486, #11489 by @JamBalaya56562)mise watch --wrap-process groupis now honored on macOS instead of being silently dropped for watchexec's platform default ofsession. The--helptext also documents the platform-dependent defaults. (#11512 by @JamBalaya56562)Registry
witr. (#11505 by @Jelenkee)New Contributors
Full Changelog: jdx/mise@v2026.7.17...v2026.7.18
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.7.17: : Monorepo Task Inference and Root DefaultsCompare Source
This release builds out mise's experimental monorepo task story: Node workspaces now infer project dependency graphs, import package scripts as first-class tasks, and can share configuration through root task defaults and upstream (
^task) dependencies. It also adds per-tool control over idiomatic version files, a smoother dotfiles workflow, and a batch of fixes across shell activation, hook-env, Homebrew casks, Aqua, and Python uv environments.Highlights
package.jsonscripts asnode:<package>#<script>tasks, root task defaults shared by task name, and experimental^taskupstream dependencies for "build upstream projects first" ordering.optional = truetask dependencies run when they match and are silently skipped when they don't, and idiomatic version files can now be disabled per tool so.nvmrcandpackage.jsonno longer fight over your Node version.cdhook working during compound commands, and fixes zsh activation underPOSIX_IDENTIFIERS.Added
task: Node workspace packages now expose their
package.jsonscripts as mise tasks without needing amise.tomlin every package. Scripts get stable IDs likenode:@​scope/app#buildplus monorepo path aliases such as//packages/app:build, run in their package root through the detected package manager (npm/pnpm/Yarn/Bun) with raw argument passthrough, and explicit tasks take precedence while keeping both names linked. (#11466 by @jdx)task: Node workspaces now infer project dependency edges by matching declared internal package names (
dependencies,devDependencies,optionalDependencies,peerDependencies) to other discovered packages, surfaced throughmise tasks graph. This is the graph that powers dependency-aware ordering. (#11435 by @jdx)task: experimental root task defaults via
[monorepo.task_defaults.<name>]in the rootmise.toml, applied by task name to both inferred and explicit workspace tasks. Task-local config andextendstemplates still win. (#11473 by @jdx)task: experimental
^taskupstream dependency syntax so a task can require the same task in every upstream workspace project before it runs, expanding through the project graph (including transitive upstreams) and skipping projects that lack the task. Supported independsonly. (#11476 by @jdx)task: optional dependencies via
optional = trueon structured task dependencies. Optional deps run all matches when present and are silently omitted when nothing matches, while invalid selectors still error. Works acrossdepends,depends_post, andwait_for. (#11471 by @jdx)config:
idiomatic_version_file_disable_fileslets you disable individual idiomatic version files per tool usingtool:filenamepairs, so you can keep.nvmrcselecting Node while ignoringpackage.jsondevEngines, with pnpm still readingpackage.json. (#11470 by @jdx)dotfiles:
mise bootstrap dotfiles addnow applies captured entries by default (use--no-applyfor capture-only workflows), moves real paths into the dotfiles source before linking, normalizes and sorts[dotfiles]entries, and reports config writes and concrete apply actions, with rollback on failure. (#11451 by @jdx)Fixed
env._.sourceand full config reloads to re-run on every prompt indefinitely. Forced fast-path runs now always refresh the session. (#11458 by @Marukome0743)cdin a compound command applies the matching mise environment immediately, matching Bash and Zsh behavior. (#11478 by @Marukome0743)POSIX_IDENTIFIERSenabled;MISE_*changes are captured correctly instead of hitting abad math expressionerror. (#11467 by @jdx)command_wrapperartifacts and structuredrunlifecycle steps (for example Firefox and OrbStack) now install and reconcile correctly instead of failing on unknown metadata. (#11472 by @jdx)version_prefixfamily before evaluating constraints, so packages with multiple tag families (like oxlint'soxlint_vandapps_v) resolve to the right override. Locked installs also parse the release tag from the download URL so prefix-scoped overrides apply. (#11469, #11482 by @jdx)UV_PROJECT_ENVIRONMENTwhen selecting, creating, and activating the virtual environment (resolving relative paths from the workspace root), and folds the resolved path into env cache keys so alternate venv locations are honored. (#11475 by @Marukome0743)[monorepo] lockfile = true) no longer rescans every configured monorepo root per tool, removing repeated filesystem traversal on the hot path. (#11468 by @jdx)mise.toml. (#11453, #11474, #11454 by @JamBalaya56562)Documentation
Full Changelog: jdx/mise@v2026.7.16...v2026.7.17
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.7.16: : Task Workspaces, MCP Command Effects, and Dotfiles CleanupCompare Source
This release expands the experimental task output cache with per-run controls, a configurable cache directory, and command-derived cache inputs, and lays the groundwork for monorepo-aware task workspaces starting with Node discovery. It also teaches
mise mcpto expose each command's read/write/destructive effect to agents, consolidates dotfiles management undermise bootstrap, and lands a broad batch of fixes across brew, npm, tasks, config rewriting, and OCI pushes.Highlights
--task-cache/MISE_TASK_CACHE), a configurabletask.cache_dir, andcache.command_inputsso cache keys can fold in runtime state like compiler versions.mise mcpcan now tell agents what a command does: the newlist_commandstool returns each command's read/write/destructive effect so agents can reason about safety before running anything.Added
task: per-run cache controls via
--task-cache <mode>andMISE_TASK_CACHE, supportingread-write(default),read-only,write-only,off, andlocal-only. Read-only lets untrusted CI jobs consume existing results without publishing misses, write-only warms the cache without consuming entries, andoffgives a clean diagnostic path while preserving normalsourcesfreshness. Honored bymise runand bootstrap/naked task entry points. (#11396 by @jdx)task: experimental
task.cache_dirsetting andMISE_TASK_CACHE_DIRto place task output artifacts on dedicated volumes or project-specific locations without relocating mise's entire cache.mise cache clearandmise cache prunecover the custom location. (#11399 by @jdx)task: experimental
cache.command_inputsso cacheable tasks invalidate on command-derived state (likenode --versionor a generated config fingerprint) that isn't captured by source files. Each command runs in the task directory with the resolved tool environment, and its text plus stdout/stderr hashes fold into the cache key. (#11381 by @jdx)task: experimental workspace project graph model and provider interface, the ecosystem-neutral foundation for Node, Cargo, uv, and Go monorepo discovery, plus Node workspace discovery for npm, pnpm, Yarn, and Bun monorepos powered by Aube's shared manifest parsing and workspace-confined scanning. (#11400, #11418, #11420, #11422, #11424, #11427, #11430, #11445 by @jdx)
mcp: new
list_commandstool exposing mise's command tree with each command's declared effect (read,write,destructive, or unclassified), help text, and hidden status, so agents can see what a command does before invoking it. An optionalinclude_hiddencontrols visibility, and unclassified is explicitly treated as unknown rather than safe. (#11389 by @jdx)cargo:
cargo.binstall_nativegraduates from experimental and can now discover conventionally named GitHub release artifacts from a crate's linked repository whenpackage.metadata.binstallis absent, so more precompiled binaries install without crate-specific configuration. It also works under the defaultlocked = truepath. (#11433 by @jdx)dotfiles: new
mise bootstrap dotfiles unapply(with hiddenmise dotfiles unapplycompatibility alias) to remove managed symlinks, copies, templates, and edit blocks while preserving unmanaged content. Supports target filters,--dry-run,--yes, and requires--forcefor modified or ambiguous content. (#11437 by @jdx)bootstrap: dotfiles management is now consolidated under
mise bootstrap dotfiles(add,edit,apply,status), which runspre-dotfiles/post-dotfileshooks correctly. The top-levelmise dotfilescommand is hidden and deprecated (warnings in 2027.2.0, removal in 2028.2.0) but still works. (#11436 by @jdx)bootstrap: added
bsas a visible shorthand alias formise bootstrap. (#11439 by @jdx)spm: new
install_commandoption for source installs runs a custom command from the checked-out package, and fails the install when the command exits successfully but installs nothing intobin/(protecting against scripts that swallow build failures). (#11369 by @Marukome0743)Fixed
mise use,mise up --bump, andmise setnow preserve trailing inline comments when rewritingmise.toml, matching the existing behavior for comments above a line and for.tool-versions. (#11415 by @JamBalaya56562)mise oci pushnow accepts201 Createdon the chunkPATCH, fixing large-layer pushes to AWS ECR that previously failed withblob chunk upload failed: 201. (#11376 by @fire-ant)mise.lockpin are now trusted through aube's low-download popularity gate for the requested package, so reproducing an existing lockfile no longer requiresallow_low_downloads. First-time unlocked installs and OSV malicious-package checks are unchanged. (#11384 by @jdx)uvwhenuvxis disabled for the package. (#11373 by @JamBalaya56562)symlink-eachnow prunes stale mise-managed symlinks left behind when a source file is deleted (reporting them as drift inmise dotfiles status), collapses emptied directories, and gainsexcludeglob patterns for directory-walking modes, while leaving unmanaged files and user links untouched. (#11388 by @jdx)MISE_VERSIONandMISE_INSTALL_PATH(#11401 by @JamBalaya56562), and mise-managedmasis now detected (#11429 by @jdx).falseto override script headers (#11112 by @risu729), and treat a missing content-hash baseline as stale (#11447 by @JamBalaya56562).Documentation
Registry
New Contributors
Full Changelog: jdx/mise@v2026.7.15...v2026.7.16
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.7.15: : Experimental Task Output CachingCompare Source
This release lands the first version of experimental local task output caching, letting eligible tasks restore their declared outputs and replay their logs without rerunning. It also adds structured registry idiomatic-version-file parsing, a standalone Aube installer mode, and a broad batch of task, Homebrew, shell, and Windows path fixes.
Highlights
dagger.json,Taskfile.yml,.chezmoiversion, and 8 more) in-process, with no plugin or shell execution.Added
task: experimental, opt-in local artifact caching. Tasks with
sourcesand explicitoutputscan restore their outputs from a content-addressed cache instead of rerunning, and successful stdout/stderr are replayed through whatever output mode the current run uses. Cache keys combine source contents, task configuration and arguments, declared and allowlisted ambient environment, resolved tools, OS, and architecture. Cache failures degrade to misses or warnings rather than failing a task. (#11328, #11347 by @jdx)task: dependency artifact keys now fold into a task's cache key, so downstream tasks reuse cached outputs when their dependencies resolve to the same artifacts, and an upstream input change correctly invalidates downstream results. (#11340 by @jdx)
task: result-only caching via
outputs = []for checks like lint, test, and typecheck that produce no files. Their successful result and replayable logs are cached without writing an archive. (#11351 by @jdx)task: reusable and global cache inputs. Define named
[task_config.input_groups]referenced fromsourcesas@group:<name>, andtask_config.global_inputsto apply config-rooted patterns to every task in scope, so shared lockfiles and toolchain files no longer need repeating per task. (#11356 by @jdx)task:
task_config.global_envfor scoped environment inputs that participate in cache keys, pluspass_through_env/task_config.global_pass_through_envto keep selected ambient variables (like tokens) available underdeny_envwithout affecting cache keys. (#11363 by @jdx)task:
outputsnow support ordered!exclusions and re-inclusions (mirroringsources), with\!escaping. Excluded paths are omitted from freshness hashes and cache archives, and existing excluded files are preserved on restore. (#11367 by @jdx)task:
task_config.shellsets a project-scoped default shell for tasks, with task-local and templateshellstill taking precedence. This gives users a safe migration path after the 2026.7.14 change that ignored project-level default shell-arg settings. (#11354 by @jdx)config: registry
idiomatic_filesentries can now define structuredversion_regex,version_json_path, andversion_exprparsers, adding in-process idiomatic version-file parsing for 11 tools including Dagger, Task, chezmoi, CMake, Earthly, golangci-lint, GoReleaser, Lefthook, Pixi, pre-commit, and Ruff. Parsing runs without executing plugin or shell code, and remains opt-in per tool. (#11341 by @jdx)npm: new
npm.package_manager = "aube_cli"mode installsnpm:tools through a separately installed standalone Aube executable while mise still resolves versions itself, avoiding Aube's npm compatibility shim. The default embeddedaubebehavior is unchanged. (#11357 by @jdx)deps: explicitly configured
mise depsproviders that are currently inapplicable now stay visible.mise deps --listshows an active/inactive status with a reason (e.g.inactive (missing package-lock.json)), andmise deps <provider> --explainor an explicit run fails with that reason instead of silently disappearing. (#11182 by @risu729)Fixed
source_freshness_hash_contents = truenow skips mtime comparison entirely, so tasks no longer re-run on every CI job after a cache restore resets timestamps. Output integrity is tracked with a content hash that also detects missing, partially deleted, and modified outputs. (#11319 by @rabadin)mise run, instead ofchmod-ing the file and still failing with "no task found". Respects--yes,MISE_YES, and the trustedyessetting. (#11337 by @jdx)wait_for,{{usage.*}}dependencies, anddepends_postare reported with a concrete path before any task runs, while valid post-dependency graphs are no longer rejected. (#11329 by @jdx)$ ...task headers now display forwarded arguments accurately for inline and shebang tasks, no longer making multiline tasks appear to pass args to their first command. (#11344 by @jdx)--outputandMISE_TASK_OUTPUToverrides now honor raw and interactive tasks the same waytask.outputconfig does, fixing mixed command/timing output for tasks that need inherited stdio. (#11355 by @jdx)mise bootstrap packages upgradeno longer fails to link kegs when formulae were already installed and linked by real Homebrew. mise now recognizes brew's directory symlinks, resolves link targets one hop like brew does, and expands directory symlinks into real directories before linking. This also fixes second-upgrade failures for formulae shipping versioned dylib aliases in pure-mise setups. (#11320 by @mjun0812)mise bootstrap packages prunenow correctly removes a keg's unversioned dylib alias links instead of leaving them dangling. (#11330 by @mjun0812)~/paths now expand using the platform path separator, so Windows install and tool locations no longer surface mixed separators (e.g.C:\Users\me\.local/share/mise) throughmise where, shims, and related output. (#11312 by @JamBalaya56562)mise activate pwshnow works underSet-StrictMode, guarding uninitialized globals that previously aborted activation, fixing a baremiseinvocation, restoringchpwdhook chaining, and silencing command-not-found errors when PSReadLine is unavailable. (#11314 by @JamBalaya56562)disable_backendsno longer shadows the registry entry, so a registry shorthand falls back to an enabled backend instead of failing to install. Already-installed tools keep reporting their recorded backend. (#11362 by @JamBalaya56562)mise generate task-docs --injectnow errors with a clear message when the<!-- mise-tasks -->markers are missing or reversed, instead of truncating or clobbering the target file. (#11359 by @JamBalaya56562)initializeresponse now reports the server asmiseat mise's version, instead of inheriting rmcp's default identity. (#11361 by @jdx)Documentation
activatetreats the shims directory with auto-install. (#11366 by @JamBalaya56562)Registry
oh-my-pi(#11324 by @slbls) and filled in missing tool descriptions (#11322 by @risu729).New Contributors
Full Changelog: jdx/mise@v2026.7.14...v2026.7.15
💚 Sponsor mise
mise is maintained by @jdx, an open source developer for entire.io, the title sponsor of the jdx.dev open source tools. Development is funded by sponsors.
If mise saves you or your team time, please consider sponsoring at jdx.dev. Individual and company sponsorships keep mise fast, free, and independent.
v2026.7.14: : Multi-asset GitHub installs, safer defaults, and Windows pipCompare Source
This release adds overlay installs for GitHub-based tools, closes a config-trust security gap around default shell arguments, and lands a wide batch of correctness fixes across tasks, lockfiles, npm, Swift, brew casks, and Windows Python.
Added
additional_asset_patterns, so a single install can overlay multiple release archives from the same tag into one installation directory. Each supplemental artifact is locked and verified (checksums and provenance) on its own, and--lockedfails if the rConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.